package com.kinghood.productcenter.dao.base;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kinghood.productcenter.common.model.dao.base.BaseLabelDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kinghood.productcenter.common.model.dto.base.ListLabelQueryDTO;
import com.kinghood.productcenter.common.model.vo.base.LabelListVO;
import com.kinghood.productcenter.common.model.vo.base.LabelSelectVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 基础选项-标签表 Mapper 接口
 * </p>
 *
 * @author KingHood
 * @since 2023-12-20
 */
public interface BaseLabelMapper extends BaseMapper<BaseLabelDO> {

    /**
     * 标签列表
     *
     * @param page  页
     * @param param 参数
     * @return @return {@link Page }<{@link LabelListVO }>
     * @author jp
     * @date 2024/01/12 15:01
     */
    Page<LabelListVO> listLabel(Page<Object> page,@Param("param") ListLabelQueryDTO param);

    /**
     * 标签下拉
     *
     * @return @return {@link List }<{@link LabelSelectVO }>
     * @author jp
     * @date 2024/01/12 15:01
     */
    List<LabelSelectVO> getAllLabel();

    /**
     * 计数未使用标签值
     *
     * @param labelId   标签id
     * @param updateIds 更新ID
     * @return @return int
     * @author jp
     * @date 2024/01/12 15:01
     */
    int countLabelValueUnused(@Param("labelId") Long labelId, @Param("updateIds")  List<Long> updateIds);
}
